# Methods added to this helper will be available to all templates in the application.
module ApplicationHelper
  def body_id_and_title(id, title)
    content_for(:body) { id }
    content_for(:title) { title }
  end

  def informacion_evento(evento, avatar_type = "thumb", reducido = false) 
    #evento =[regalo, tipo, fecha] tam_avatar = ["thumb_little","thumb"]
    #rcmn-remitente, rcmn-invitado, rn-aceptados, rn-rechazados, rn-recibidos, an_aceptados, an_rechazados, an_en_espera
    tipo1, tipo2 = evento.tipo.split("-")    
    if evento.regalo_id
      regalo = Regalo.find(evento.regalo_id)
    elsif
      amigo = Usuario.find(evento.amigo_id)
    end
    # Regalo Con Mensaje Nuevo
    if tipo1 == "rcmn" 
      enlace1 = link_to((reducido == true ? 'Te ha escrito' : 'Te ha escrito un mensaje'), regalo_mensajes_path(current_usuario.login, regalo))
      if tipo2 == "remitente"
        usuario = regalo.invitado
        enlace2 = nombre_invitado(regalo)
      else
        usuario = regalo.remitente
        enlace2 = nombre_remitente(regalo)
      end
      
    # Aviso para el remitente de expiración en 48 horas
    elsif tipo1 == "rn" && tipo2 == "expirado48i"
      usuario = regalo.remitente
      enlace1 = link_to((reducido == true ? '¡ Expirará pronto !' : 'Tienes un regalo a punto de expirar' ), usuario_regalo_path(current_usuario.login, regalo))
      enlace2 = nombre_remitente(regalo)

    # Aviso para el invitado de expiración en 48 horas  
    elsif tipo1 == "rn" && tipo2 == "expirado48r"
      usuario = regalo.invitado
      enlace1 = link_to((reducido == true ? '¡ Expirará pronto !' : 'Tienes un regalo a punto de expirar' ), usuario_regalo_path(current_usuario.login, regalo))
      enlace2 = nombre_invitado(regalo)
    
    elsif tipo1 == "rn" && tipo2 == "expiradoi"
      usuario = regalo.remitente
      enlace1 = link_to((reducido == true ? '¡ Ha expirado !' : 'Tienes un regalo expirado' ), usuario_regalo_path(current_usuario.login, regalo))
      enlace2 = nombre_remitente(regalo)  
    
    elsif tipo1 == "rn" && tipo2 == "expirador"
      usuario = regalo.invitado
      enlace1 = link_to((reducido == true ? '¡ Ha expirado !' : 'Tienes un regalo expirado' ), usuario_regalo_path(current_usuario.login, regalo))
      enlace2 = nombre_invitado(regalo)
    
    # Regalo Novedad (Aceptado/Rechazado)
    elsif tipo1 == "rn" and tipo2 != "recibido" 
      usuario = regalo.invitado
      enlace1 = link_to((reducido == true ? "Regalo #{tipo2}" : "Te ha #{tipo2[0..tipo2.size-1]} un regalo"), usuario_regalo_path(current_usuario.login, regalo))
      enlace2 = nombre_invitado(regalo)

    # Nueva Invitacion
    elsif tipo1 == "rn" and tipo2 == "recibido"
      usuario = regalo.remitente
      enlace1 = link_to((reducido == true ? 'Invitacion regalo' : 'Te ha hecho una invitacion'), usuario_regalo_path(current_usuario.login, regalo))
      enlace2 = nombre_remitente(regalo)

    # Invitacion de amigo aceptada
    elsif tipo1 == "an" and tipo2 == "pendiente"
      usuario = amigo
      enlace1 = link_to((reducido == true ? 'Quiere ser tu amigo' : 'Quiere ser tu amigo'), usuario_amigo_path(current_usuario.login, usuario.login))
      enlace2 = link_to_pagina_amigo(usuario)

    # Te han aceptado una peticion de amigo 
    elsif tipo1 == "an" and tipo2 == "aceptado"
      usuario = amigo
      enlace1 = link_to((reducido == true ? '¡ Ya es tu amigo !' : 'Te ha aceptado como amigo' ), usuario_amigo_path(current_usuario.login, usuario.login))
      enlace2 = link_to usuario.login, usuario_amigo_path(current_usuario.login, usuario.login)

    # Has rechazado a un posible amigo
    elsif tipo1 == "an" and tipo2 == "rechazadoi"
      usuario = amigo
      enlace1 = link_to((reducido == true ? '¡ Has rechazado amigo !' : 'Has rechazado a un amigo' ), usuario_amigos_path(current_usuario.login))
      enlace2 = usuario.login

    
    # Te han rechazado la peticion de ser su amigo
    elsif tipo1 == "an" and tipo2 == "rechazador"
      usuario = amigo
      enlace1 = link_to((reducido == true ? '¡ Has sido rechazado !' : 'Has sido rechazado como amigo' ), usuario_amigos_path(current_usuario.login))
      enlace2 = usuario.login
    end
    
    if evento.visto?
      return "<img src='/images/ticked.png'/> #{avatar(usuario, avatar_type)} <span class='event_txt'>#{enlace1}</span> - <span class='event_who'>#{enlace2}</span>"
    else
      return "<img src='/images/nonticked.png'/> #{avatar(usuario, avatar_type)} <span class='event_txt'>#{enlace1}</span> - <span class='event_who'>#{enlace2}</span>"
    end
  end

  def avatar(usuario, version = "thumb", options = {})
    if usuario and usuario.avatar?
      imagen = eval "url_for_file_column(usuario, 'avatar', '#{version}')"
      return image_tag(imagen, options)
    else
      return image_tag('/images/avatar_big.png', options) if version == "thumb"
      return image_tag('/images/avatar_48.png', options) if version == "thumb_medium"
      return image_tag('/images/avatar.png', options) if version == "thumb_little"
    end
  end
  
  #Devuelve el intervalo de elementos mostrados en una determinada pagina, como entrada tiene el numero de elementos a paginar, 
  #la pagina en q nos encontramos, y el numero de elementos por pagina, por defecto 5
  def intervalo(num_elementos, pagina_actual, num_elementos_pagina = 5)
    pagina_actual == nil ? pagina_actual = 1 : pagina_actual = pagina_actual.to_i
    if num_elementos > 0
      elementos_pagina = pagina_actual != 1 ? num_elementos - (pagina_actual * num_elementos_pagina) : num_elementos
      limite_superior = elementos_pagina >= num_elementos_pagina ? (num_elementos_pagina * pagina_actual) : num_elementos
      "#{num_elementos_pagina*(pagina_actual-1) +1} - #{limite_superior} de #{num_elementos}" 
    end
  end

  #Devuelve un link a la pagina de nuestro amigo, si éste nos es accesible
  def link_to_pagina_amigo(usuario)
    if logged_in? and usuario and current_usuario.amigos_accesibles.include? usuario
      link_to usuario.login, usuario_amigo_path(current_usuario.login, usuario.login), :title => "Ver Ficha Amigo"
    else
      usuario.login
    end
  end
  
  def edad(nacimiento)
    (( Date.today.strftime( "%Y%m%d" ).to_i - nacimiento.strftime( "%Y%m%d" ).to_i ) / 10000 ).to_i
  end
     
  def nombre_remitente(regalo)
    if regalo.remitente
      link_to_pagina_amigo(regalo.remitente) 
    else
      regalo.mostrar_email ? regalo.email_remitente : "Usuario Misterioso"
    end
  end
  
  def nombre_invitado(regalo)
    if regalo.invitado
      link_to_pagina_amigo(regalo.invitado)
    else
      regalo.email_invitado
    end
  end
  
  def time_to_word(fecha)
    meses = (fecha / 1.month).to_i
    fecha -= meses.month
    dias = (fecha / 1.day).to_i
    fecha -= dias.days
    horas = (fecha / 1.hour).to_i
    fecha -= horas.hour
    minutos = (fecha / 1.minute).to_i
    
    "#{pluralize(meses, "mes") if meses > 0} #{pluralize(dias, "dia") if dias > 0} #{pluralize(horas, "hora") if horas > 0} y #{pluralize(minutos, "minuto") if minutos > 0}"
  end

  def link_pedir_amistad(amigo)
     if current_usuario.amigos_accesibles.not.include?(amigo)
      "<li><a href=\"/#{current_usuario.login}/amigos/peticion?amigo=#{amigo.id}\"onclick=\"if (confirm(\\'¿Quieres pedirle amistad a ese usuario?\\')) {var f = document.createElement(\\'form\\'); f.style.display = \\'none\\'; this.parentNode.appendChild(f);f.method = \\'POST\\'; f.action = this.href;f.submit()};return false;\">Pedir amistad</a></li>"
    end
  end

  def link_nuevo_chat(amigo) 
   link_to "Chatear" , solicitar_chat_chats_path(:amigo => amigo.login),
      :target => "_blank",
      :onClick => "window.open(this.href, this.target, \\'width=350,height=540\\');return false;"
  end

  def link_to_chat_desde_foro(regalo, rol)
    
    if rol == "remitente" and regalo.invitado and regalo.invitado.conectado? and regalo.invitado.visible
       link_to "¡#{regalo.invitado.login} está online chatea!" , solicitar_chat_chats_path(:amigo => regalo.invitado.login),
            :target => "_blank", :onClick => "window.open(this.href, this.target, 'width=350,height=540');return false;"
    elsif rol == "invitado" and regalo.remitente and regalo.remitente.conectado? and regalo.remitente.visible
      link_to "¡#{regalo.remitente.login} está online chatea!" , solicitar_chat_chats_path(:amigo => regalo.remitente.login),
             :target => "_blank", :onClick => "window.open(this.href, this.target, 'width=350,height=540');return false;"
    end
    
  end


  def boton(tipo, texto)    
    res = "<table cellspacing='0' cellpadding='0' border='0'>"
    res += "  <tr>"
    res += "    <td>" 
    res += image_tag(image_path("/images/botones/#{tipo}_iz.png"))
    res += "    </td>"
    res += "    <td style='color:#FFF;text-align:center;padding-top:2px;background-image:url(/images/botones/#{tipo}_mitad.png)'>"
    res += "      #{texto}"
    res += "    </td>"
    res += "    <td>"
    res += image_tag(image_path("/images/botones/#{tipo}_de.png"))
    res += "    </td>"
    res += "  </tr>"
    res += "</table>"
  end
  
  def mostrar_amigos_busqueda(amigos)
   res = ""
   for amigo in amigos
      if current_usuario.amigos_en_espera.include?(amigo)
        contenido2 = "#{amigo.login} <span style='font-size:9px; color:green;'>(En espera de aceptación)</span>"
      else
        contenido2 = link_to amigo.login, peticion_usuario_amigos_path(:usuario => current_usuario.login, :amigo => amigo),
        :method => "post", :confirm => "¿Quieres pedirle amistad a ese usuario?"  
      end
      res += "<tr><td>#{avatar(amigo, "thumb_little")}</td><td>#{contenido2}</td></tr>"
    end
    return res
  end  
end
